/**
 * multer 模块的使用
 *
 *  使用后端的文件上传处理
 *
 * 1. 下载安装
 * 2. 引入
 * 3. 调用 multer() 得到一个 upload 对象
 * 4. 处理路由在路由上先调用 upload.xxx 中间件，实现给 req 对象添加 file 或 files 属性
 * 
 * 
 * 文件信息对象
 * {
      fieldname: 'avatar',    // 字段名
      originalname: '1.jpg',  // 原始文件名
      encoding: '7bit',       // 编码格式
      mimetype: 'image/jpeg', // 文件格式
      destination: 'C:\\Users\\elvmx\\Desktop\\2207-node\\day04\\codes\\uploads', // 存放目录
      filename: '1512dca45a52a8304a81fb2469c2ae49', // 文件名
      path: 'C:\\Users\\elvmx\\Desktop\\2207-node\\day04\\codes\\uploads\\1512dca45a52a8304a81fb2469c2ae49',
      size: 308027 // 文件大小
    }
 */

const express = require("express");
const multer = require("multer");
const path = require("path");

// 调用 multer 得到一个 upload
const upload = multer({
  // 配置项
  dest: path.resolve(__dirname, "./uploads"),
});

const app = express();

// 静态文件托管
app.use(express.static(path.resolve(__dirname, "./public")));

// POST http://localhost:3000/abc
app.post("/abc", upload.single("avatar"), (req, res) => {
  console.log(req.file);
  res.send("1111");
});

// POST /xxx
app.post("/xxx", upload.array("avatar", 3), (req, res) => {
  console.log(req.file);
  console.log(req.files);
  res.send("2222");
});

// POST /多个字段的文件上传
app.post(
  "/yyy",
  upload.fields([{ name: "zhengmian" }, { name: "fangmian" }]),
  (req, res) => {
    console.log(req.files);
    res.send("3333");
  }
);

app.listen(3000, () => {
  console.log("服务启动成功");
});
